package Pojo;

import java.util.List;

/** Classe Aluno 
* Classe aluno herda de Pessoa e faz relacionamentos com Notas, históricos e históricos turma
*
* @author Thiago de Sousa Silveira
*/
public class Aluno extends Pessoa{
	/** Código do Aluno */
	private int idAluno;
	
	/** Lista de Históricos*/
	private List<Historico> historicos;
	
	/** Lista de Históricos Turma*/
	private List<HistoricoTurma> historicoTurmas;
	
	/** Lista de Notas*/
	private List<Nota> notas;
	
	/**
	 * Construtor do Aluno sem relacionamentos
	 * @param id
	 * @param nome
	 * @param cpf
	 */
	public Aluno(int id, String nome, String cpf){
		this.setIdAluno(id);
		this.setNome(nome);
		this.setCpf(cpf);
	}
	
	/**
	 * Construtor do Aluno com relacionamentos
	 * @param id
	 * @param nome
	 * @param cpf
	 * @param historicos
	 * @param historicosTurmas
	 * @param notas
	 */
	public Aluno(int id, String nome, String cpf, List<Historico> historicos, List<HistoricoTurma> historicosTurmas, List<Nota> notas){
		this(id,nome,cpf);
		this.setHistoricos(historicos);
		this.setHistoricoTurmas(historicoTurmas);
		this.setNotas(notas);
	}
	
	/**
	 * Sobrescrita do método toString
	 */
	@Override
	public String toString(){
		return(this.getIdAluno()+"\t"+this.getNome()+"\t"+this.getCpf()+"\n");
	}
	
	/**
	 * Getter de idAluno
	 * @return
	 */
	public int getIdAluno(){
		return(this.idAluno);
	}
	
	/**
	 * Setter de idAluno
	 * @param id
	 */
	private void setIdAluno(int id){
		this.idAluno = id;
	}
	
	/**
	 * Setter de Históricos
	 * @param historicos
	 */
	private void setHistoricos(List<Historico> historicos){
		this.historicos = historicos;
	}
	
	/**
	 * Setter de Notas
	 * @param nota
	 */
	private void setNotas(List<Nota> nota){
		this.notas = nota;
	}
	
	/**
	 * Setter de Historico Turmas
	 * @param historicoTurmas
	 */
	private void setHistoricoTurmas(List<HistoricoTurma> historicoTurmas){
		this.historicoTurmas = historicoTurmas;
	}
	
	/**
	 * Getter de Históricos
	 * @return
	 */
	public List<Historico> getHistoricos(){
		return(this.historicos);
	}
	
	/**
	 * Getter de Notas
	 * @return
	 */
	public List<Nota> getNotas(){
		return(this.notas);
	}
	
	/**
	 * Getter de Históricos Turmas
	 * @return
	 */
	public List<HistoricoTurma> getHistoricoTurmas(){
		return(this.historicoTurmas);
	}
}
